Estoy creando mi primera función de firebase con Js para manejar los pagos con tarjeta con la API de Checkout.com, instalé los SDK de JavaScript de checkout y firebase y esta es mi carpeta index.js:
const functions = require("firebase-functions"); const { Checkout } = require("checkout-sdk-node"); const cko = new Checkout("sk_test_XXXXX-XXXX-XXXX"); exports.payWithToken = functions.https.onCall(async (data, context) => { try { const payment = await cko.payments.request({ source: { token: data.token, }, customer: { email: context.auth.token.email }, currency: data.currency, amount: data.amount, }) return { "Status": payment.status, "3DS-Link": payment.redirectLink, "Approved": approved, "Flagged": risk.flagged, }; } catch (error) { console.log(error) throw new functions.https.HttpsError(error.name, error.message, error); } });Creo que seguí la documentación correctamente, pero por alguna razón, no pude implementar esta función en firebase y aparece este error:
En paquete.json ,
cambia esto
"lint": "eslint .",a esto
"lint": "eslint",Encontré la solución en esta página .
Esencialmente
Las funciones de flecha son una característica de ES6, pero aquí tiene una función de flecha asíncrona.
Las funciones asíncronas en general son una característica de ES8 (o 2017). Por lo tanto, debe especificar la siguiente configuración en la raíz de su configuración: parserOptions: { ecmaVersion: 8 // or 2017 }
Así que necesitaba actualizar mi archivo .eslintrc.js a este
module.exports = { root: true, env: { es6: true, node: true }, parserOptions: { ecmaVersion: 8 }, extends: ['eslint:recommended', 'google'], rules: { 'comma-dangle': 'off', 'quote-props': 'off', indent: ['error', 2] } };